package org.chnxi.leetcode.problems.ques11;

/**
 * 盛最多水的容器
 * 执行用时 :3 ms, 在所有 Java 提交中击败了92.79%的用户
 * 内存消耗 :39.6 MB, 在所有 Java 提交中击败了65.71%的用户
 */
public class Simple01 {

    public static void main(String[] args) {
        int[] nums = {1,8,6,2,5,4,8,3,7};
        int result = maxArea(nums);
        System.out.println("result="+result);
    }

    public static int maxArea(int[] height) {
        //收集最终结果
        int result = 0;

        //安全行验证
        if(null == height || height.length < 2){
            return result;
        }

        //定义左右两个指针，分别移动
        int left = 0;
        int right = height.length-1;

        while (left < right){
            //当前容量，只能按照最小边长进行计算
            int min = Math.min(height[left] , height[right]);
            int tmp = (right - left) * min;

            if(result < tmp){
                result = tmp;
            }

            //较小的指针进行移动，左指针右移，右指针左移
            if(min == height[left]){
                left++;
            }else if(min == height[right]){
                right--;
            }
        }

        return result;
    }

}
